package link.jfire.socket.socketclient.listen;

import link.jfire.baseutil.collection.ByteCache;

public interface GetReadResult
{
    /**
     * 获取到一个完整的业务数据时触发的方法
     * 
     * @param cache 本次业务数据
     * @param command 本次请求的命令
     * @param result 本次请求的结果
     * @return
     */
    public Object getRequestResult(ByteCache cache, byte command, byte result);
    
    /**
     * 收到服务端主动推送的消息时执行的操作
     * 
     * @param cache
     * @param command
     * @param result
     */
    public void receivePushMsg(ByteCache cache, byte command, byte result);
    
    /**
     * 通道发生异常时会被调用的方法，如果已经有了写操作在结果队列中，此时会将错误放到该写结果中
     * 
     * @param e 捕获的异常
     * @param channelInfo 发生异常的通道
     */
    public void handlerException(Throwable e, ClientChannelInfo channelInfo);
}
